home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / userfile.arc / USERFILE.C < prev    next >
Text File  |  1990-08-23  |  3KB  |  91 lines

  1. #include <stdio.h>
  2. #include <math.h>
  3. #include <fcntl.h>
  4. #include "realcnvt.h"
  5. #include "pcbstruc.h"
  6.  
  7. int fd,local;
  8.  
  9. /*:::::::::::::::::::[ GET CURRENT USERS RECORD NUMBER ]::::::::::::::::::::*/
  10. long getrecordnum(){
  11.   long filenum;
  12.   if((fd=_open("pcboard.sys",O_RDWR|O_BINARY|O_DENYNONE))==NULL){
  13.     printf("Cannot open file pcboard.sys\n");
  14.     exit(1);  }
  15.   read(fd,&doordat,sizeof(struct pcboardsys));
  16.   close(fd);
  17.   filenum = doordat.datanum-1;
  18.   local=(strncmp("Local",doordat.mode,5)?0:1);
  19.   return(filenum);}
  20.  
  21. /*:::::::::::::::::::::::[ PRINT STRUCTURE FIELD ]::::::::::::::::::::::::::*/
  22. prtasc(char *string,char *fieldname,int length){
  23.     char tempbuff[100];
  24.     strncpy(tempbuff,fieldname,length);
  25.     strcpy(&tempbuff[length],"\0");
  26.     printf("%s%s",string,tempbuff);}
  27.  
  28. /*:::::::::::::::::::::::::::[ DISPLAY USER INFO ]::::::::::::::::::::::::::*/
  29. display_info(){
  30.     double doublenum;
  31.     prtasc("\nNAME: ",person.name,25);
  32.     printf("       Security Level: %d",person.seclev);
  33.     prtasc("\nCity & state: ",person.citystate,24);
  34.     prtasc("Password: ",person.password,12);
  35.     prtasc("\nBusiness phone: ",person.busphone,13);
  36.     prtasc("         Voice phone: ",person.voicephone,13);
  37.     prtasc("\nLast date on: ",person.lastdateon,6);
  38.     prtasc("\t\t      Time last logged on: ",person.lastlogon,5);
  39.     printf("\nExpert mode: %c",person.expertmode);
  40.     printf("\t\t\t      Protocol: %c",person.protocal);
  41.     prtasc("\nLast dir look date: ",person.dirlookdate,6);
  42.     printf("\t      Num times on: %d",person.numtimeson);
  43.     printf("\nDaily D/L: %g",basdbletodouble(&person.dailydownloads));
  44.     printf("\t\t      Page length: %d",person.pagelen);
  45.     printf("\nNumber of uploads: %d ",person.numuploads);
  46.     printf("\t\t      Number of downloads: %d",person.numdownloads);
  47.     printf("\nElapsed Time on: %d",person.timeon);
  48.     printf("\t\t      Subs exp sec level: %d",person.subsecuritylevel);
  49.     prtasc("\nSubs registration date: ",person.subscriptionreg,6);
  50.     printf("\t      Area last in: %d",person.arealastin);
  51.     printf("\nDelete flag: %c",person.deleteflg);
  52.     printf("\t\t\t      Last message read: %g",bassngltodouble(&person.lastreadmsg));
  53.     prtasc("\nUser comments: ",person.usrcomments,30);
  54.     prtasc("\nSys comments: ",person.syscomments,30);
  55.     printf("\nBytes downloaded: %g",basdbletodouble(&person.bytesdownload));
  56.     printf("\nBytes uploaded: %g",basdbletodouble(&person.bytesupload));
  57.     printf("\n\nLocal modem: %c\n\n",(local?'Y':'N'));
  58.     }
  59.  
  60.  
  61.  
  62. /*%%%%%%%%%%%%%%%%%%%%%%%%%[ START OF MAIN PROGRAM ]%%%%%%%%%%%%%%%%%%%%%%%%*/
  63. main(int argc, char *argv[])    {
  64.     int structsize;
  65.     long user_num,pos;
  66.     clrscr();
  67.     /*=========[ COMMAND LINE OR PCBOARD.SYS RECORD NUMBER ]=======*/
  68.     if (argc>1)
  69.         user_num=atoi(argv[1]);
  70.     else user_num=getrecordnum();
  71.     /*=========[ OPEN USERS FILE ]=================================*/
  72.     if((fd=open("users",O_RDWR|O_BINARY))==-1){
  73.         printf("\n\nCannot open users file ");
  74.         exit(1);    }
  75.     /*=========[ FIND RECORD NUMBER IN USERS FILE ]================*/
  76.     structsize = sizeof(struct usersinfo);
  77.     pos=(long)user_num*structsize;
  78.     if((lseek(fd,pos,0))!=-1L){
  79.         /*=====[ READ DATA INTO STRUCTURE ]========================*/
  80.         if((read(fd,&person,structsize))==0){
  81.             printf("Record number out of range");exit(1);}
  82.         close(fd);
  83.         /*=====[ DISPLAY DATA ]====================================*/
  84.         display_info();
  85.         exit(0);
  86.     }else {    printf("  ERROR trying to find record number in database!");}
  87.     close(fd);
  88.     exit(1);
  89. }
  90.  
  91.